Skip to content

bindspace→mailbox_soa W1b: migrate dense content/topic/angle identity planes (additive, parity-tested)#518

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/bindspace-mailbox-soa-w1b
Jun 17, 2026
Merged

bindspace→mailbox_soa W1b: migrate dense content/topic/angle identity planes (additive, parity-tested)#518
AdaWorldAPI merged 1 commit into
mainfrom
claude/bindspace-mailbox-soa-w1b

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

What

W1b of the bindspace→mailbox_soa arc — migrates the dense content/topic/angle Hamming identity planes onto MailboxSoA<N>, completing the D-MBX-A2 column migration. Strictly additive, parity-tested, nothing deletedBindSpace is fully intact; both paths run.

Builds on #517 (W0 map + W1 small columns), now on main.

Changes (crates/cognitive-shader-driver/src/mailbox_soa.rs)

  • MailboxSoA<N> gains content/topic/angle as heap Box<[u64]> of N * WORDS_PER_FP. Per OQ-1/§2.7 the dense Hamming identity planes stay hot in the mailbox (~6 KB/thought) — they are NOT reduced to a tiny ref; that's the cold/storage form. A [u64; N*256] stack array isn't expressible on stable Rust and would be ~2 MB/plane at N=1024, so heap Box<[u64]> is the representation.
  • New pub const WORDS_PER_FP = 256 defined locally so the mailbox does not depend on the singleton it is migrating off of (W7 deletes BindSpace, not this).
  • Zero-copy accessors content_row/topic_row/angle_rowcontent_row is the driver's resonance/Hamming read path (the BindSpace equivalent is FingerprintColumns::content_row) — plus set_content/set_topic/set_angle; reset_row clears each plane's row span.
  • The deprecated cycle (Vsa16kF32) plane is NEVER migrated (OQ-1/§2.7) — computed transiently if a step needs it. Dropping it is what makes the 64k–256k hot working set fit.

Tests (16 mailbox_soa green, clippy clean)

  • test_mailbox_soa_dense_planes_parity_with_bindspacecontent asserted byte-identical to a BindSpace window written with the same words (the migration-critical read); topic/angle full round-trip on the mailbox (BindSpace exposes no public topic/angle setter, so they default zero there).
  • test_mailbox_soa_reset_row_clears_dense_planesreset_row zeroes the row's plane spans, and a neighbouring row survives a reset (span isolation).

Migration status

D-MBX-A2 column migration is now COMPLETE (W1 sigma/temporal/expert + W1b content/topic/angle). The only BindSpace.fingerprints column not migrated is cycle (dropped by design). The remaining arc is wiring (W2 differential dispatch read → W3/W4 feature-gated engine_bridge + dispatch swap → W5 bins → W6 tombstone → W7 delete BindSpace last), not column parity. Dependency map updated in the same commit.

🤖 Generated with Claude Code


Generated by Claude Code

…lanes

Second additive wiring step of the bindspace→mailbox_soa arc; completes the
D-MBX-A2 column migration. ADDITIVE only — BindSpace untouched, nothing deleted.

- MailboxSoA<N> gains content/topic/angle as heap Box<[u64]> of N*WORDS_PER_FP
  (the dense Hamming identity planes stay HOT per OQ-1/§2.7 — NOT a tiny ref;
  a [u64; N*256] stack array isn't expressible on stable Rust and would be ~2 MB
  /plane at N=1024). Local `pub const WORDS_PER_FP = 256` so the mailbox does not
  depend on the singleton it is migrating off of. The deprecated cycle (Vsa16kF32)
  plane is NEVER migrated — computed transiently if needed.
- Zero-copy accessors content_row/topic_row/angle_row (the driver's resonance
  read path) + set_content/set_topic/set_angle; reset_row clears the row's span
  in each plane.
- Tests: dense_planes_parity_with_bindspace (content byte-parity vs a BindSpace
  window — the migration-critical read; topic/angle full round-trip since
  BindSpace exposes no public topic/angle setter) + reset_row_clears_dense_planes
  (span isolation: a neighbour row survives a row reset). 16 mailbox_soa tests
  green, clippy clean.

Dependency map updated: content/topic/angle → SHIPPED (W1b); D-MBX-A2 column
migration COMPLETE; remaining arc is wiring (W2→W7), BindSpace deleted LAST.

Co-Authored-By: Claude <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@AdaWorldAPI, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 45 minutes and 40 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 054fbc98-b187-4410-b54e-ba302c95db18

📥 Commits

Reviewing files that changed from the base of the PR and between 40690ff and 707360d.

📒 Files selected for processing (2)
  • .claude/plans/bindspace-mailbox-soa-dependency-map-v1.md
  • crates/cognitive-shader-driver/src/mailbox_soa.rs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@AdaWorldAPI AdaWorldAPI merged commit 91cd5f9 into main Jun 17, 2026
6 checks passed
AdaWorldAPI pushed a commit that referenced this pull request Jun 17, 2026
5-consolidation + 3-brutal-critic (5+3) hardening pass complete. v1 verdict was
HOLD; v2 integrates every P0/P1. Architecture confirmed sound by all 3 critics
(baton-handoff / brutally-honest-tester / preflight-drift); fixes are sequencing
+ two corrected premises.

Overturned / fixed:
- DROPPED the "W2.5 mutability decision gate" — it was a NON-ISSUE (no
  Arc<ShaderDriver>; the bins' Mutex guard already yields &mut ShaderDriver →
  &mut self.mailboxes free). The recommended RwLock would have ADDED a
  Mutex→RwLock→awareness lock-order edge.
- W2 BLOCKED on #518 (content_row only on the W1b branch), not "READY NOW";
  header no longer overclaims W1b shipped.
- prefilter off-by-(N−len): zeroed MetaWord passes MetaFilter::accepts → add
  MailboxSoA::populated() (W1c) and clamp to it, not n_rows().
- BusDto round-trip P0: non-headline top_k indices live in the dropped cycle
  plane → D-DIST-5 reclassified with the named cycle exception; W3 adds a BusDto
  differential gate + busdto_bridge_test tolerance update.
- W3+W4a collapsed into ONE atomic PR (H-DW-1); +feature-on CI matrix row.
- ontology re-home onto ShaderDriver at W4b (else ctx_id falls to unwrap_or(0)
  at W7); shim edge arm uses edges_raw()[row] (one reattach); emit-path
  pack(temporal) v2-no-op observability; firewall lint bars BOTH the ndarray
  twin AND the THIRD type thinking_engine::layered::CausalEdge64.

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants